Ex04 - Filtragem de Imagens

convolução discreta é uma ferramenta utilizada para construir qualquer filtro linear ou de deslocamento.

Filtros suavizantes: são aqueles que removem a nitidez da imagem fazendo uma média, aritmética ou ponderada, na janela do núcleo. O filtro ponderado suavizante mais comum é o da gaussiana. Filtros suavizantes são muito utilizados para eliminar ruído de uma imagem.

Filtros aguçantes: são aqueles que realçam as bordas da imagem. Um dos filtros aguçantes mais comum é o Sobel (https://en.wikipedia.org/wiki/Sobel_operator).

Veja mais no notebook sobre Filtragem no domínio espacial


In [3]:
import numpy as np
import matplotlib.image as mpimg
import matplotlib.pyplot as plt

%matplotlib inline
f = mpimg.imread('../data/retina.tif')  
plt.imshow(f,cmap='gray')


Out[3]:
<matplotlib.image.AxesImage at 0x7f538a3a1190>

Exercício 1

Entenda o uso da função numpy.convolve e experimente usá-la para entender o filtro da média. Sugestões:

  • comece com uma imagem numérica pequena e depois use a imagem da retina
  • faça experimentos variando o tamanho da máscara do filtro e compare as imagens resultantes
  • varie também o modos da função, explicando as diferenças encontradas
  • compare os resultados obtidos pela função numpy.convolve com a filtragem usando a função conv da toolbox ia898

Exercício 2

Explore o filtro Gaussiano. Sugestões:

  • teste a propriedade de decomposição das máscaras da convolução, ou seja, crie um filtro gaussiano bi-dimensional (3,3) a partir de 2 filtros unidimensionais (3,1) e (1,3)
  • Faça experimentos de filtragem variando os parâmetros do filtro (tamanho da máscara do filtro, a média e o desvio padrão)
  • adicione ruído a uma imagem e depois tente remover o ruído com filtragem